The quest for increasing market share in the data processing industry has resulted in expanding the marketing of traditional national products into an international arena. This has resulted in the need for designing products which can meet be modified, or ported, into this international marketplace. Traditional methods for modifying or porting such code have proved inadequate, and cost thousands, and sometimes millions of dollars in such modification.
The modification procedures used encompass translation of the data processing system application program to the respective target language. Initially, this was accomplished by translation centers going through the source code, and making appropriate modifications to suit that particular country's needs. The program would then be recompiled and linked after such changes had been made, and this new runtime program would be sold in that particular market for the language which was implemented. This procedure was not only time-consuming, but subject to errors. These errors are most notable in a windowing, or panel display system having fixed areas for particular types of information, such as information messages, prompt messages, input fields, status indicators, etc. where the format or style of the windows provides a consistent interface, independent of the specific underlying application (this windowing, or..panel interface has been popularized by the Apple Macintosh computer, and follow on products such as Microsoft's Windows program). It should be reiterated that these panels attempt to provide a consistent user interface, independent to a certain extent from the actual application being used by the end user. However, translation centers and translators generally have no knowledge of these panels, and are rather experts in the literal translation of words in one language to that of another language. As a result, the resultant translations cause the format or style of the screen images to change as text used as part of the display is changed, resulting in inconsistent screen formats and styles. The major underlying problem is that the application program would be closely coupled to the type of interface presented to the user, and any change to the application program in translation was directly reflected in the resultant display presented to the user when the application program was run. Other types of errors resulting from this type of system resulted as the file containing the program logic flow was being edited by a person untrained in programming. This resulted in inadvertent changes possibly being made to the syntax of the application program, which would cause fatal errors when trying to compile, link, or run the resulting code.
This problem has been addressed to a certain extent by trying to separate the programming code instructions from the text portion which is to be displayed to the user of the application program. Two separate files are used to accomplish this separation. The idea here is that a translator would only be modifying the text, or language specific file (text file), and not modifying the file containing the language independent program code logic and controls (program file). This system is not without its own set of problems, however, as even though the code is separated from the text, it is not isolated or independent. This is because the program file still possibly maintains information pertaining to the text to be displayed, such as pointers to the location in memory where the text string is located, and the length of the text string. Many times during translation, if not most of the time, the length of the strings will change when translated. The program file would then have to be modified to reflect the change in string length which resulted from such translation.
Some attempts have been made to eliminate the modification of string length step by coding a `worst case` value for the strength length, the worst case being the longest string value possible for all languages for which the program will be translated for. However, this approach is not only inefficient, but results in a cluttered, unattractive screen displays for all but the language which is utilizing the worst case values, as the menu layout/architecture would have to be designed using these worst case values.
Further, the prior art has not addressed the use of a single screen definition for use in generating differing language specific fields which are used for either input or output of information between an application program and a user of the application program.